/*
 * Copyright 2017 Baiyyy
 * @(#)TSHumitureMapper.java
 */

package com.byyy.ccts.modules.cc.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.byyy.ccts.modules.cc.entity.ccts.TSHumiture;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * Created by DELL on 2018-5-7.
 */
public interface HumitureMapper extends BaseMapper<TSHumiture> {

    /** 根据设备编号以及采集时间查找重复数据 */
    public List<TSHumiture> queryRepeatData(@Param("deviceId") String deviceId,
                                            @Param("collectionTimes") List<String> collectionTimes);

    /** 查询某个时间段内设备的温度记录 */
    public List<TSHumiture> queryDeviceTempByTime(@Param("deviceIdList") List<String> deviceIdList,
                                            @Param("beginTime") Date beginTime,
                                            @Param("endTime") Date endTime);

    /** 查询某个时间段内设备的温度记录 */
    public List<TSHumiture> queryDeviceTempByTimeUpload(@Param("deviceIdList") List<String> deviceIdList,
                                                  @Param("beginTime") Date beginTime,
                                                  @Param("endTime") Date endTime);

    /** 查询某个时间段内所有设备的温度记录 */
    public List<TSHumiture> queryAllDeviceTempByTime(@Param("beginTime") Date beginTime,
                                                  @Param("endTime") Date endTime);

    /** 根据业务单据编号查找关联设备的最新的温度以及采集时间 */
    public List<TSHumiture> queryHumitureByDanjNo(@Param("zcdNo") String zcdNo,
                                                  @Param("danjNos") List<String> danjNos,
                                                  @Param("endTime") Date endTime);

    List<TSHumiture> humitureListPage(Page<TSHumiture> page, @Param("ew") Wrapper<TSHumiture> wrapper);

    /** 根据设备ID查询最新的设备温湿度数据 **/
    List<TSHumiture> queryLastedHumitureInfo(@Param("deviceIds") List<String> deviceIds);

    /** 查询所有设备最新数据 **/
    List<TSHumiture> queryCurrentInfo(@Param("cangkuList") List<String> cangkuList);

    /** 根据设备ID查询最新的设备温湿度数据(不固定期限) **/
    List<TSHumiture> queryLastedHumitureInfoNoLimit(@Param("deviceIds") List<String> deviceIds);

    /** 根据装车单号、设备编码、结束时间查询查询设备数据 **/
    List<TSHumiture> queryDeviceHumitureList(@Param("zcdNo") String zcdNo,
                                                    @Param("sbNo") String sbNo,
                                                    @Param("endTime") Date endTime);

}
